package com.itany.corejava.code09_集合.list集合;

import java.util.Arrays;
import java.util.LinkedList;

/**
 * @author 石小俊
 * @date 2023年05月05日 16:11
 */
public class Test04_LinkedList {

    public static void main(String[] args) {
        // 定义方式一
        LinkedList<String> list = new LinkedList<>();
        // 定义方式二
        LinkedList list2 = new LinkedList(Arrays.asList(1, 3, 4));

        // 可以使用List的相关方法
        list.add("admin");
        list.add("alice");
        list.add("tom");
        list.add(1, "jack");

        // 队列相关方法
        // addFirst():在首部添加一个元素
        list.addFirst("lily");
        // addLast():在末尾添加一个新的元素
        list.addLast("root");

        // getFirst():返回第一个元素
        System.out.println(list.getFirst());
        // getLast():返回最后一个元素
        System.out.println(list.getLast());

        System.out.println("删除前集合:" + list);

        // removeFirst():删除第一个元素
        list.removeFirst();
        // removeLast():删除最后一个元素
        list.removeLast();

        System.out.println("删除后集合:" + list);

        // pollFirst():获取并移除此列表的第一个元素
        // 即:取出第一个元素,并在队列中删除被取出的元素
        System.out.println(list.pollFirst());
        // pollLast():获取并移除此列表的最后一个元素
        System.out.println(list.pollLast());

        list.add("admin");
        list.add("alice");
        System.out.println(list);

        // peekFirst():获取但不移除此列表的第一个元素
        System.out.println(list.peekFirst());
        // peekLast():获取但不移除此列表的最后一个元素
        System.out.println(list.peekLast());

        System.out.println(list);
    }

}
